package club.banyuan.SpringBootHrms.controller;

import club.banyuan.SpringBootHrms.dto.AnimalInputDto;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.*;

@Controller
@RequestMapping("/test")
public class TestController {
//    @GetMapping("/zoos/{id}")
//    @ResponseBody
//    public String testPathVariable1(@PathVariable Integer id) {
//        return id.toString();
//    }

    @GetMapping("/animals/{animalId}")
    @ResponseBody
    public String testPathVariable2(@PathVariable("animalId") Integer id) {
        return id.toString();
    }

    @GetMapping("/zoos/{zooId}/animals/{animalId:[0-9a-zA-Z]+}")
    @ResponseBody
    public String testPathVariable3(@PathVariable("zooId") Integer zooId,
                                    @PathVariable("animalId") String animalId,
                                    AnimalInputDto animal) {
        // 接收数据的类 必须有无参构造方法，必须有getter setter方法
        // 可以结合使用

        // 如果传入过来的是json格式，就需要加RequestBody注解来接收
        // @RequestBody AnimalInputDto animal
        return "zooId=" + zooId + ";animalId="+animalId + ";" + animal.toString();
    }

    @GetMapping("/zoos/{id}")
    @ResponseBody
    // @RequestParam 缺省的就是 require = true 加了注释url就必须加参数
    // 如果设置为 require = false 可以不写
    // defaultValue = "test" 默认值(如果不加属性，就会使用默认值)
    public String testPathVariable1(@PathVariable Integer id,
                                    @RequestParam String name) {
        return name;
    }

}
